Pattern-oriented modeling